============================= начало на програмен текст =========================
ПРОГРАМА WINDOW1
преход   @начало_на_кода

ВМЪКНИ R\RVM\STT_UTILS

КОНСТАНТИ
 ако_са_равни             if_equal
 в_добавен_символ_отдясно soc_addcright
 оа_изключване            otoa_close_program_window
 оа_фокус                 otoa_focus
 св_процес_номер_по_име   v1sq_process_id_by_name

ПРОМЕНЛИВИ
 прозорец_команда         15         // Терминалът очаква след тази команда описание на прозорец
 прозорец_идентификатор   142        // По този номер по-късно програмата уцелва същия прозорец.
 прозорец_лява_стена      20  _use   // координати x0,y0,dx,dy
 прозорец_таван           20  _use
 прозорец_ширина          648 _use
 прозорец_височина        390 _use
 прозорец_фокусиран       0   _use   // фокусираните прозорци приемат клавиатурните натискания
 прозорец_състояние       1   _use   // 1=нормален; 2=максимален; 3= минимален
 прозорец_тип             0   _use   // има три-четири типа, но нулевият е най-обикновен
 прозорец_заглавие        'Заглавие' // този текст се изобразява в горната ивица на прозореца.
 прозорец_комадна_линия   ''         // в този стринг се поставя временно транспортната линия

 фокус_команда           41
 фокус_идентификатор     0
 фокус_съдържание        0
 фокус_родител           0  _use

 чист_команда            33          // пакет за изчистване на образа
 чист_прозорец_идент     0           // от терминалния прозорец
 помощен_идентификатор   0  _use     // този ид. е полезен за други случаи

 работи                  0           // флаг за стартирана програма

КОД
@начало_на_кода
сравни     работи, 1
условно    @вече_работи, ако_са_равни
постави    работи, 1
постави    s, ''
система    св_процес_номер_по_име
умножи     i, 10000                          // процес х 10000 + местния ид.
събери     прозорец_идентификатор, i
подпреход  @построй_изходен_буфер
подпреход  @построй_команда_за_прозорец
подпреход  @изпрати_линия_към_терминала
освободи

@вече_работи
вземи                                         // прочита входното съобщение
сравни     оа_фокус, s                        // може да е за фокус
условно    @фокусирай_прозореца, ако_са_равни
сравни     s, оа_изключване                   // може да е за изключване
условно    @изключи_програмата, ако_са_равни
освободи

@построй_команда_за_прозорец                  // сглобява една команда
постави    i, 36
пренеси    s, прозорец_команда, S
постави    прозорец_комадна_линия, s
постави    s, прозорец_заглавие
превърни   от_стринг_в_дължина
постави    s, прозорец_комадна_линия
превърни   в_добавен_символ_отдясно
събери     s, прозорец_заглавие               //резултатът остава в регистър s
обратно

@фокусирай_прозореца
подпреход  @построй_команда_за_фокус
подпреход  @изпрати_линия_към_терминала
освободи

@изключи_програмата
подпреход  @построй_команда_за_изчистване
подпреход  @изпрати_линия_към_терминала
спри

@построй_команда_за_изчистване
постави    чист_прозорец_идент, прозорец_идентификатор
постави    i, 12
пренеси    s, чист_команда, S
обратно

@построй_команда_за_фокус
постави    фокус_идентификатор, прозорец_идентификатор
постави    фокус_съдържание, 1
постави    i, 16
пренеси    s, фокус_команда, S
обратно
============================= край на програмен текст =========================